home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Resources.p < prev    next >
Encoding:
Text File  |  1998-02-12  |  12.8 KB  |  393 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Resources.p
  3.  
  4.      Contains:    Resource Manager Interfaces.
  5.  
  6.      Version:    Technology:    Mac OS 8.1
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Resources;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __RESOURCES__}
  28. {$SETC __RESOURCES__ := 1}
  29.  
  30. {$I+}
  31. {$SETC ResourcesIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __MACTYPES__}
  35. {$I MacTypes.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __MIXEDMODE__}
  38. {$I MixedMode.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __FILES__}
  41. {$I Files.p}
  42. {$ENDC}
  43.  
  44.  
  45. {$PUSH}
  46. {$ALIGN MAC68K}
  47. {$LibExport+}
  48.  
  49.  
  50.  
  51. CONST
  52.     resSysHeap                    = 64;                            { System or application heap? }
  53.     resPurgeable                = 32;                            { Purgeable resource? }
  54.     resLocked                    = 16;                            { Load it in locked? }
  55.     resProtected                = 8;                            { Protected? }
  56.     resPreload                    = 4;                            { Load in on OpenResFile? }
  57.     resChanged                    = 2;                            { Resource changed? }
  58.     mapReadOnly                    = 128;                            { Resource file read-only }
  59.     mapCompact                    = 64;                            { Compact resource file }
  60.     mapChanged                    = 32;                            { Write map out at update }
  61.  
  62.     resSysRefBit                = 7;                            { reference to system/local reference }
  63.     resSysHeapBit                = 6;                            { In system/in application heap }
  64.     resPurgeableBit                = 5;                            { Purgeable/not purgeable }
  65.     resLockedBit                = 4;                            { Locked/not locked }
  66.     resProtectedBit                = 3;                            { Protected/not protected }
  67.     resPreloadBit                = 2;                            { Read in at OpenResource? }
  68.     resChangedBit                = 1;                            { Existing resource changed since last update }
  69.     mapReadOnlyBit                = 7;                            { is this file read-only? }
  70.     mapCompactBit                = 6;                            { Is a compact necessary? }
  71.     mapChangedBit                = 5;                            { Is it necessary to write map? }
  72.  
  73.     kResFileNotOpened            = -1;                            { ref num return as error when opening a resource file }
  74.     kSystemResFile                = 0;                            { this is the default ref num to the system file }
  75.  
  76.  
  77.  
  78. TYPE
  79. {$IFC TYPED_FUNCTION_POINTERS}
  80.     ResErrProcPtr = PROCEDURE(thErr: OSErr);
  81. {$ELSEC}
  82.     ResErrProcPtr = Register68kProcPtr;
  83. {$ENDC}
  84.  
  85.     ResErrUPP = UniversalProcPtr;
  86.  
  87. CONST
  88.     uppResErrProcInfo = $00001002;
  89.  
  90. FUNCTION NewResErrProc(userRoutine: ResErrProcPtr): ResErrUPP;
  91.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  92.     INLINE $2E9F;
  93.     {$ENDC}
  94.  
  95. PROCEDURE CallResErrProc(thErr: OSErr; userRoutine: ResErrUPP);
  96.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  97.     {To be implemented:  Glue to move parameters into registers.}
  98.     {$ENDC}
  99. {$IFC NOT TARGET_OS_MAC }
  100. {  QuickTime 3.0 }
  101.  
  102. TYPE
  103. {$IFC TYPED_FUNCTION_POINTERS}
  104.     ResourceEndianFilterPtr = FUNCTION(theResource: Handle; currentlyNativeEndian: BOOLEAN): OSErr;
  105. {$ELSEC}
  106.     ResourceEndianFilterPtr = ProcPtr;
  107. {$ENDC}
  108.  
  109. {$ENDC}
  110.  
  111. FUNCTION InitResources: INTEGER;
  112.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  113.     INLINE $A995;
  114.     {$ENDC}
  115. PROCEDURE RsrcZoneInit;
  116.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  117.     INLINE $A996;
  118.     {$ENDC}
  119. PROCEDURE CloseResFile(refNum: INTEGER);
  120.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  121.     INLINE $A99A;
  122.     {$ENDC}
  123. FUNCTION ResError: OSErr;
  124.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  125.     INLINE $A9AF;
  126.     {$ENDC}
  127. FUNCTION CurResFile: INTEGER;
  128.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  129.     INLINE $A994;
  130.     {$ENDC}
  131. FUNCTION HomeResFile(theResource: Handle): INTEGER;
  132.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  133.     INLINE $A9A4;
  134.     {$ENDC}
  135. PROCEDURE CreateResFile(fileName: Str255);
  136.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  137.     INLINE $A9B1;
  138.     {$ENDC}
  139. FUNCTION OpenResFile(fileName: Str255): INTEGER;
  140.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  141.     INLINE $A997;
  142.     {$ENDC}
  143. PROCEDURE UseResFile(refNum: INTEGER);
  144.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  145.     INLINE $A998;
  146.     {$ENDC}
  147. FUNCTION CountTypes: INTEGER;
  148.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  149.     INLINE $A99E;
  150.     {$ENDC}
  151. FUNCTION Count1Types: INTEGER;
  152.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  153.     INLINE $A81C;
  154.     {$ENDC}
  155. PROCEDURE GetIndType(VAR theType: ResType; index: INTEGER);
  156.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  157.     INLINE $A99F;
  158.     {$ENDC}
  159. PROCEDURE Get1IndType(VAR theType: ResType; index: INTEGER);
  160.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  161.     INLINE $A80F;
  162.     {$ENDC}
  163. PROCEDURE SetResLoad(load: BOOLEAN);
  164.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  165.     INLINE $A99B;
  166.     {$ENDC}
  167. FUNCTION CountResources(theType: ResType): INTEGER;
  168.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  169.     INLINE $A99C;
  170.     {$ENDC}
  171. FUNCTION Count1Resources(theType: ResType): INTEGER;
  172.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  173.     INLINE $A80D;
  174.     {$ENDC}
  175. FUNCTION GetIndResource(theType: ResType; index: INTEGER): Handle;
  176.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  177.     INLINE $A99D;
  178.     {$ENDC}
  179. FUNCTION Get1IndResource(theType: ResType; index: INTEGER): Handle;
  180.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  181.     INLINE $A80E;
  182.     {$ENDC}
  183. FUNCTION GetResource(theType: ResType; theID: INTEGER): Handle;
  184.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  185.     INLINE $A9A0;
  186.     {$ENDC}
  187. FUNCTION Get1Resource(theType: ResType; theID: INTEGER): Handle;
  188.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  189.     INLINE $A81F;
  190.     {$ENDC}
  191. FUNCTION GetNamedResource(theType: ResType; name: Str255): Handle;
  192.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  193.     INLINE $A9A1;
  194.     {$ENDC}
  195. FUNCTION Get1NamedResource(theType: ResType; name: Str255): Handle;
  196.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  197.     INLINE $A820;
  198.     {$ENDC}
  199. PROCEDURE LoadResource(theResource: Handle);
  200.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  201.     INLINE $A9A2;
  202.     {$ENDC}
  203. PROCEDURE ReleaseResource(theResource: Handle);
  204.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  205.     INLINE $A9A3;
  206.     {$ENDC}
  207. PROCEDURE DetachResource(theResource: Handle);
  208.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  209.     INLINE $A992;
  210.     {$ENDC}
  211. FUNCTION UniqueID(theType: ResType): INTEGER;
  212.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  213.     INLINE $A9C1;
  214.     {$ENDC}
  215. FUNCTION Unique1ID(theType: ResType): INTEGER;
  216.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  217.     INLINE $A810;
  218.     {$ENDC}
  219. FUNCTION GetResAttrs(theResource: Handle): INTEGER;
  220.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  221.     INLINE $A9A6;
  222.     {$ENDC}
  223. PROCEDURE GetResInfo(theResource: Handle; VAR theID: INTEGER; VAR theType: ResType; VAR name: Str255);
  224.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  225.     INLINE $A9A8;
  226.     {$ENDC}
  227. PROCEDURE SetResInfo(theResource: Handle; theID: INTEGER; name: Str255);
  228.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  229.     INLINE $A9A9;
  230.     {$ENDC}
  231. PROCEDURE AddResource(theData: Handle; theType: ResType; theID: INTEGER; name: Str255);
  232.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  233.     INLINE $A9AB;
  234.     {$ENDC}
  235. FUNCTION GetResourceSizeOnDisk(theResource: Handle): LONGINT;
  236.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  237.     INLINE $A9A5;
  238.     {$ENDC}
  239. FUNCTION GetMaxResourceSize(theResource: Handle): LONGINT;
  240.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  241.     INLINE $A821;
  242.     {$ENDC}
  243. FUNCTION RsrcMapEntry(theResource: Handle): LONGINT;
  244.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  245.     INLINE $A9C5;
  246.     {$ENDC}
  247. PROCEDURE SetResAttrs(theResource: Handle; attrs: INTEGER);
  248.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  249.     INLINE $A9A7;
  250.     {$ENDC}
  251. PROCEDURE ChangedResource(theResource: Handle);
  252.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  253.     INLINE $A9AA;
  254.     {$ENDC}
  255. PROCEDURE RemoveResource(theResource: Handle);
  256.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  257.     INLINE $A9AD;
  258.     {$ENDC}
  259. PROCEDURE UpdateResFile(refNum: INTEGER);
  260.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  261.     INLINE $A999;
  262.     {$ENDC}
  263. PROCEDURE WriteResource(theResource: Handle);
  264.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  265.     INLINE $A9B0;
  266.     {$ENDC}
  267. PROCEDURE SetResPurge(install: BOOLEAN);
  268.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  269.     INLINE $A993;
  270.     {$ENDC}
  271. FUNCTION GetResFileAttrs(refNum: INTEGER): INTEGER;
  272.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  273.     INLINE $A9F6;
  274.     {$ENDC}
  275. PROCEDURE SetResFileAttrs(refNum: INTEGER; attrs: INTEGER);
  276.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  277.     INLINE $A9F7;
  278.     {$ENDC}
  279. FUNCTION OpenRFPerm(fileName: Str255; vRefNum: INTEGER; permission: SInt8): INTEGER;
  280.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  281.     INLINE $A9C4;
  282.     {$ENDC}
  283. FUNCTION RGetResource(theType: ResType; theID: INTEGER): Handle;
  284.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  285.     INLINE $A80C;
  286.     {$ENDC}
  287. {
  288.     Note:     The HOpenResFile trap was not implemented until System 7.  If you want to call HOpenResFile
  289.             while running on System 6 machines, then define USE_HOPENRESFILE_GLUE and link with
  290.             Interface.o which contains glue to implement HOpenResFile on pre-System 7 machines.
  291. }
  292. {$IFC NOT UNDEFINED USE_HOPENRESFILE_GLUE }
  293. FUNCTION HOpenResFile(vRefNum: INTEGER; dirID: LONGINT; fileName: Str255; permission: SInt8): INTEGER;
  294. {$ELSEC}
  295. FUNCTION HOpenResFile(vRefNum: INTEGER; dirID: LONGINT; fileName: Str255; permission: SInt8): INTEGER;
  296.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  297.     INLINE $A81A;
  298.     {$ENDC}
  299. {$ENDC}
  300.  
  301. {
  302.     Note:     The HCreateResFile trap was not implemented until System 7.  If you want to call HCreateResFile
  303.             while running on System 6 machines, then define USE_HCREATERESFILE_GLUE and link with
  304.             Interface.o which contains glue to implement HCreateResFile on pre-System 7 machines.
  305. }
  306. {$IFC NOT UNDEFINED USE_HCREATERESFILE_GLUE }
  307. PROCEDURE HCreateResFile(vRefNum: INTEGER; dirID: LONGINT; fileName: Str255);
  308. {$ELSEC}
  309. PROCEDURE HCreateResFile(vRefNum: INTEGER; dirID: LONGINT; fileName: Str255);
  310.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  311.     INLINE $A81B;
  312.     {$ENDC}
  313. {$ENDC}
  314.  
  315. FUNCTION FSpOpenResFile({CONST}VAR spec: FSSpec; permission: SignedByte): INTEGER;
  316.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  317.     INLINE $700D, $AA52;
  318.     {$ENDC}
  319. PROCEDURE FSpCreateResFile({CONST}VAR spec: FSSpec; creator: OSType; fileType: OSType; scriptTag: ScriptCode);
  320.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  321.     INLINE $700E, $AA52;
  322.     {$ENDC}
  323. PROCEDURE ReadPartialResource(theResource: Handle; offset: LONGINT; buffer: UNIV Ptr; count: LONGINT);
  324.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  325.     INLINE $7001, $A822;
  326.     {$ENDC}
  327. PROCEDURE WritePartialResource(theResource: Handle; offset: LONGINT; buffer: UNIV Ptr; count: LONGINT);
  328.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  329.     INLINE $7002, $A822;
  330.     {$ENDC}
  331. PROCEDURE SetResourceSize(theResource: Handle; newSize: LONGINT);
  332.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  333.     INLINE $7003, $A822;
  334.     {$ENDC}
  335. FUNCTION GetNextFOND(fondHandle: Handle): Handle;
  336.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  337.     INLINE $700A, $A822;
  338.     {$ENDC}
  339.  
  340. {$IFC NOT TARGET_OS_MAC }
  341. {  QuickTime 3.0 }
  342. FUNCTION RegisterResourceEndianFilter(theType: ResType; theFilterProc: ResourceEndianFilterPtr): OSErr; C;
  343. {$ENDC}
  344.  
  345. { Use TempInsertROMMap to force the ROM resource map to be
  346.    inserted into the chain in front of the system. Note that
  347.    this call is only temporary - the modified resource chain
  348.    is only used for the next call to the resource manager.
  349.    See IM IV 19 for more information. 
  350. }
  351. PROCEDURE TempInsertROMMap(tempResLoad: BOOLEAN);
  352.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  353.     INLINE $70FF, $4A1F, $56C0, $31C0, $0B9E;
  354.     {$ENDC}
  355.  
  356. {$IFC OLDROUTINENAMES }
  357. FUNCTION SizeResource(theResource: Handle): LONGINT;
  358.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  359.     INLINE $A9A5;
  360.     {$ENDC}
  361. FUNCTION MaxSizeRsrc(theResource: Handle): LONGINT;
  362.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  363.     INLINE $A821;
  364.     {$ENDC}
  365. PROCEDURE RmveResource(theResource: Handle);
  366.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  367.     INLINE $A9AD;
  368.     {$ENDC}
  369.  
  370. {$ENDC}  {OLDROUTINENAMES}
  371.  
  372. {
  373.     These typedefs were originally created for the Copland Resource Mangager
  374. }
  375.  
  376. TYPE
  377.     ResFileRefNum                        = INTEGER;
  378.     ResID                                = INTEGER;
  379.     ResAttributes                        = INTEGER;
  380.     ResFileAttributes                    = INTEGER;
  381.  
  382.  
  383. {$ALIGN RESET}
  384. {$POP}
  385.  
  386. {$SETC UsingIncludes := ResourcesIncludes}
  387.  
  388. {$ENDC} {__RESOURCES__}
  389.  
  390. {$IFC NOT UsingIncludes}
  391.  END.
  392. {$ENDC}
  393.